from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 19]

'''
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
   参数：
    num:图像编号或名称，数字为编号 ，字符串为名称
    figsize:指定figure的宽和高，单位为英寸；
    dpi参数指定绘图对象的分辨率，即每英寸多少个像素，缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
    facecolor:背景颜色
    edgecolor:边框颜色
    frameon:是否显示边框
'''
# 设置图片大小
plt.figure(figsize=(20, 8), dpi=80, num="huangdian111")

# 设置X轴的刻度
# xticks() 参数为可迭代对象，例如数组
plt.xticks(range(2, 26))
# 设置X轴的刻度
plt.yticks(range(min(y), max(y) + 1))

# 绘图
plt.plot(x, y)

# 保存图片
# plt.savefig("./pic.png")

# 展示图形
# plt.show()

##############################################################################
'''
a表示从10点到12点的气温变化，画出折现图观察气温变化
a= [random.randint(20,35) for i in range(120)]
'''
import random
from matplotlib import font_manager

plt.figure(num="气温变化", figsize=(50, 8), dpi=80)
a = [random.randint(20, 35) for i in range(120)]
b = list(range(120))
plt.yticks(range(min(a), max(a)))

# 处理中文乱码,实例化font_manager.FontProperties，然后在xticks中调用
myfont = font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")

b_xticts = ["10点{}分".format(i if i > 10 else '0' + str(i)) for i in range(60)]
b_xticts += ["11点{}分".format(i if i > 10 else '0' + str(i)) for i in range(60)]
plt.xticks(b[::2], b_xticts[::2], rotation=45, fontproperties=myfont)
_a = [str(i) + "℃" for i in a]
plt.yticks(a, _a)

# 添加描述信息
plt.xlabel("Time")
plt.ylabel("Temperature")
plt.title("Temperature versus time table")

# 添加网格
plt.grid(alpha=0.2)
plt.plot(b, a, "-r", label="222")
# 添加label图例
plt.legend()



'''
以上都做了什么
  绘制折现图（plt.plot）
  设置图片大小和分辨率（plt.figure）
  保存图片（plt.savefig）
  设置x轴和y轴的刻度和字符串（plt.xticks）
  解决刻度稀疏和密集问题（plt.xticks）
  设置标题，xy轴的label（xlabel,ylabel,title）
  设置字体（font_manager,fontPropertise,）
  在一个图上绘制多个图形（plt多次plot即可）
  为不同图形添加图例（plt.legend()）
'''
'''
绘制散点图
   把plt.plot改成plt.scatter
'''

'''
绘制柱状图
  plt.bar()
  plt.barh() 更常用
'''
# plt.figure(figsize=(20,10),dpi=80)
# plt.barh(x,y)
# plt.yticks(x)
plt.show()